package com.kakaxi.mybilibili.utils;

import android.content.Context;
import android.os.Bundle;

import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;
import com.kakaxi.mybilibili.bean.BannerItemBean;

import java.util.List;
import java.util.Map;

/**
 * 广告滑动控件帮助类,统一方便处理统一的滑动控件
 * Created by kakaxi on 16/8/29.
 */

public class SliderLayoutHelper {

    /** 标识标题 **/
    public static final String EXTRA_TITLE_TAG = "title";

    /**
     * 初始化统一滑动广告控件
     *
     * @param sliderLayout 滑动广告控件
     * @return
     */
    public static SliderLayout initSliderLayout(SliderLayout sliderLayout) {
        if (sliderLayout != null) {
            sliderLayout.setPresetTransformer(SliderLayout.Transformer
                    .Default);
            sliderLayout.setPresetIndicator(SliderLayout.PresetIndicators
                    .Right_Bottom);
           // sliderLayout.setCustomAnimation(new DescriptionAnimation());
            sliderLayout.setDuration(4000);
        }
        return sliderLayout;
    }

    /**
     * 设置网络图片广告
     *
     * @param sliderLayout        广告滑动控件
     * @param urlMaps             网络图片集合 k:标题 v:图片网址
     * @param sliderClickListener 点击监听器
     * @return
     */
    public static SliderLayout setUrlSlider(SliderLayout sliderLayout, Map<String, String>
            urlMaps, BaseSliderView.OnSliderClickListener sliderClickListener) {
        if (sliderLayout != null && urlMaps != null) {
            // 先移除所有滑动图再设置新的
            sliderLayout.removeAllSliders();
            for (String title : urlMaps.keySet()) {
                sliderLayout.addSlider(createUrlSliderView(sliderLayout.getContext(), title,
                        urlMaps.get(title), sliderClickListener));
            }
            // 1张图以下就会停止滑动
            if (urlMaps.size() <= 1) {
                sliderLayout.stopAutoCycle();
            } else {
                sliderLayout.startAutoCycle();
            }
        }
        return sliderLayout;
    }

    /**
     * 设置网络图片广告
     *
     * @param sliderLayout        广告滑动控件
     * @param bannerList          网络图片列表
     * @param sliderClickListener 点击监听器
     * @return
     */
    public static SliderLayout setUrlSlider(SliderLayout sliderLayout, List<BannerItemBean>
            bannerList, BaseSliderView.OnSliderClickListener sliderClickListener) {
        if (sliderLayout != null && bannerList != null) {
            // 先移除所有滑动图再设置新的
            sliderLayout.removeAllSliders();
            for (BannerItemBean bannerItemBean : bannerList) {
                sliderLayout.addSlider(createUrlSliderView(sliderLayout.getContext(), bannerItemBean
                                .getTitle(),
                        bannerItemBean.getImg(), sliderClickListener));
            }
            // 1张图以下就会停止滑动
            if (bannerList.size() <= 1) {
                sliderLayout.stopAutoCycle();
            } else {
                sliderLayout.startAutoCycle();
            }
        }
        return sliderLayout;
    }

    /**
     * 创建文本图片滑动视图
     *
     * @param context             上下文
     * @param title               标题
     * @param url                 图片连接
     * @param sliderClickListener 点击监听器
     * @return
     */
    private static TextSliderView createUrlSliderView(Context context, String title, String url,
                                                      BaseSliderView
                                                              .OnSliderClickListener
                                                              sliderClickListener) {
        TextSliderView textSliderView = new TextSliderView(context);
        textSliderView.description(title).image(url).setScaleType
                (BaseSliderView.ScaleType.Fit);
        textSliderView.bundle(new Bundle());
        textSliderView.getBundle().putString(EXTRA_TITLE_TAG, title);
        textSliderView.setOnSliderClickListener(sliderClickListener);
        return textSliderView;
    }

}
